;^Z80^
TITLE FILE: CART:ROB           HEWLETT-PACKARD: CART  (c) Coleco 1984

;  This is an example of the OCB pointer following the game name
;section and how to store the boot device number for future use.
;The RAM at 8000H is defined in greater detail in the ColecoVision
;Programmers Manual.

           ORG        8000H
____       EQU        0000
;** CARTRIDGE SOFTWARE POINTERS 8000H **
;        --------------------------------------------

           DEFB       55H,0AAH       ;Cartridge present:  Colecovision logo
           DEFW       ____           ;Pointer to the sprite name table
           DEFW       ____           ;Pointer to the sprite order table
           DEFW       ____           ;Pointer to the working buffer for WR_SPR_NM_TBL
           DEFW       ____           ;Pointer to the hand controller input areas
           DEFW       MAIN_PROG      ;Entry point to the user program

;****************************************************************

           JP         RSTX            ;RST  08
           JP         RSTX            ;RST  10
           JP         RSTX            ;RST  18
           JP         RSTX            ;RST  20
           JP         RSTX            ;RST  28
           JP         RSTX            ;RST  30

;* THIS IS THE MASKABLE INTERRUPT SOFT VECTOR
           JP         MASK_INT

;* THIS IS THE NMI SOFT VECTOR.
           JP         VDPINT

;****************************************************************

;      ** Game name section **

           DEFB "SUPER"
           DEFB "/GAMES ",1DH,"/1984"

;          1DH = Copyright symbol
;          1EH,1FH = Trade mark symbol

;****************************************************************

           EXT        OCB

           DEFW       OCB       ; A pointer to the OCB must follow the
                                ;date in the game name

DEV_ID     DEFB       8         ; This is the default DEVICE_ID.  See MAIN_PROG (below) for applications
                                ;booted from a different device.
;****************************************************************

;****************************************************************

RSTX       RET        ;Z80 restarts to be defined

;----------------------------------
VDPINT     RETN       ;Non maskable interrupt processing-
                      ;Normally used for critical timing:
                      ;       music
                      ;       processing timers
                      ;       sprite motion processing

;----------------------------------
MASK_INT   RETI       ;Z80 maskable interrupt vector-
                      ;Normally used with spinner switch:
                      ;       steering wheel
                      ;       sports controller
                      ;       roller controller

         EXT          _HARD_INIT,COLDSTART
MAIN_PROG
           LD         A,B                       ; Main prog is entered with the device ID in the B register.
                                                ;If it is not saved, the DDP manager or application will only
                                                ;run from Drive A.
           LD         [DEV_ID],A

; The rest of the application follows...